package main

// import (
// 	"fmt"
// 	"time"

// 	"github.com/golang-jwt/jwt/v5"
// )

// import (
// 	"context"
// 	"fmt"
// 	"log"
// 	"net/url"
// 	"time"

// 	"github.com/minio/minio-go/v7"
// 	"github.com/minio/minio-go/v7/pkg/credentials"
// )

// func main() {
// 	/*
// 	  AccessKey: Y8nYwZUWmzVVpXUF
// 	  SecretKey: K6NcQCqNRr91zBUbSYS12GhOjQmonHfQ
// 	*/
// 	// endpoint := "119.3.143.106:9001"
// 	endpoint := "192.168.106.200:9000"
// 	AccessKey := "lfAmmMsWEC3JvKcU"
// 	SecretKey := "Fm8MaVk01GRjXzzTUlZZdPmwR1bxzXJw"
// 	useSSL := false
// 	minioClient, err := minio.New(endpoint, &minio.Options{
// 		Creds:  credentials.NewStaticV4(AccessKey, SecretKey, ""),
// 		Secure: useSSL,
// 	})
// 	if err != nil {
// 		log.Fatalln(err)
// 	}
// 	// 创建一个名为mymusic的桶
// 	bucketName := "mymusic"
// 	location := "us-east-1" // 创建桶的区域，默认为us-east-1)
// 	// policy, _ := minioClient.GetBucketPolicy(context.Background(), bucketName)
// 	// fmt.Printf("policy: %v\n", policy)
// 	// 设置桶的s3访问策略
// 	policy := `{"Version": "2012-10-17","Statement": [{"Action": ["s3:GetObject"],"Effect": "Allow","Principal": {"AWS": ["*"]},"Resource": ["arn:aws:s3:::mymusic/*"],"Sid": ""}]}`

// 	err = minioClient.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: location, ObjectLocking: false})
// 	if err != nil { // 创建桶失败
// 		exists, err := minioClient.BucketExists(context.Background(), bucketName) // 检查是否已经拥有改桶
// 		if err == nil && exists {                                                 // 如果没有错误并且exists返回位true，就说明该桶已存在无需创建
// 			err := minioClient.SetBucketPolicy(context.Background(), bucketName, policy) // 设置桶或对象前缀的访问权限
// 			if err != nil {
// 				log.Fatalln(err)
// 			} else {
// 				log.Printf("We already own %s\n", bucketName)
// 			}

// 		} else {
// 			log.Fatalln(err)
// 		}
// 	} else {
// 		err := minioClient.SetBucketPolicy(context.Background(), bucketName, policy)
// 		if err != nil {
// 			log.Fatalln(err)
// 		} else {
// 			log.Printf("Successfully created %s\n", bucketName)

// 		}
// 	}
// 	// 上传文件
// 	objectName := "唯美女生.jpg"
// 	filePath := "G:\\gin_shop\\test\\001.jpg"
// 	contentType := "image/jpeg"
// 	_, err = minioClient.FPutObject(context.Background(), bucketName, objectName, filePath, minio.PutObjectOptions{ContentType: contentType})
// 	if err != nil {
// 		log.Fatalln(err)
// 		return
// 	}
// 	reqParams := make(url.Values)
// 	presignedURL, err := minioClient.PresignedGetObject(context.Background(), bucketName, objectName, time.Second*24*60*60, reqParams)
// 	if err != nil {
// 		log.Fatalln(err)
// 	} else {
// 		link := presignedURL.Scheme + "://" + presignedURL.Host + presignedURL.Path
// 		fmt.Printf("URL：%s\n", link)
// 	}
// }


